"""
和位置操作相关的模块
"""
import pygame


def center(
        obj: pygame.Surface,
        target: pygame.Surface,
        position: tuple[float | int, float | int] = (0, 0),
        is_h_center: bool = True,
        is_v_center: bool = True
) -> tuple[float | int, float | int]:
    """
    对传递进来的位置进行居中处理
    :param obj: 要绘制的对象
    :param target: 绘制到的目标
    :param position: 位置
    :param is_h_center: 水平方向上是否居中
    :param is_v_center: 垂直方向上是否居中
    :return: 居中处理后的位置
    """
    # 获取要绘制的对象的大小
    obj_w = obj.get_width()
    obj_h = obj.get_height()
    # 获取绘制到的目标的大小
    target_w = target.get_width()
    target_h = target.get_height()
    # 如果水平方向上要居中
    if is_h_center:
        position = (target_w / 2 - obj_w / 2, position[1])
    if is_v_center:
        position = (position[0], target_h / 2 - obj_h / 2)
    return position

